package com.sensePlusVR.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class ListMap<I, T> {
	private Map<I, T> map = new HashMap<I, T>();
	private List<T> list = new ArrayList<T>();
	
	public void add(I key, T value){
		map.put(key, value);
		list.add(value);
	}
	
	public void addHead(I key, T value){
		map.put(key, value);
		list.add(0, value);
	}
	
	public void remove(I key){
		if (map.containsKey(key)){
			T value = map.get(key);
			list.remove(value);
			map.remove(key);
		}
	}
	
	public boolean containsKey(I key){
		return map.containsKey(key);
	}
	
	public T get(I key){
		return map.get(key);
	}
	
	public Set<Entry<I, T>> entrySet(){
		return map.entrySet();
	}
	
	public void clear(){
		map.clear();
		list.clear();
	}
	
	public List<T> getList(){
		return list;
	}
}
